﻿using AutoMapper;
using BCEntity.OA.Attendance.AttendanceCheckInRecord;
using BCEntity.OA.Attendance.AttendanceClass;
using BCEntity.OA.Attendance.AttendanceClassSetting;
using BCEntity.OA.Attendance.AttendanceGroup;
using BCEntity.OA.Attendance.AttendanceLocation;
using BCEntity.OA.Attendance.AttendancePlan;
using BCEntity.OA.Attendance.AttendanceRemedyApply;
using BCEntity.OA.Attendance.AttendanceRemedyRules;
using BCEntity.OA.Attendance.AttendanceWiFi;
using BCDto.OA.Attendance.AttendanceCheckInRecord;
using BCDto.OA.Attendance.AttendanceClass;
using BCDto.OA.Attendance.AttendanceClassSetting;
using BCDto.OA.Attendance.AttendanceGroup;
using BCDto.OA.Attendance.AttendanceLocation;
using BCDto.OA.Attendance.AttendancePlan;
using BCDto.OA.Attendance.AttendanceRemedyApply;
using BCDto.OA.Attendance.AttendanceRemedyRules;
using BCDto.OA.Attendance.AttendanceWiFi;

namespace BCService.MapperProfiles.OA
{
    public class AttendanceProfile : Profile
    {
        public AttendanceProfile()
        {
            CreateMap<AttendanceClassRequestDto, AttendanceClassEntity>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<AttendanceClassEntity, AttendanceClassDto>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<AttendanceClassSettingEntity, AttendanceClassSettingDto>().IgnoreAllPropertiesWithAnInaccessibleSetter();

            CreateMap<AttendanceLocationEntity, AttendanceLocationDto>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<AttendanceLocationDto, AttendanceLocationEntity>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<AttendanceLocationRequestDto, AttendanceLocationEntity>().IgnoreAllPropertiesWithAnInaccessibleSetter();

            CreateMap<AttendanceWiFiEntity, AttendanceWiFiDto>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<AttendanceWiFiDto, AttendanceWiFiEntity>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<AttendanceWiFiRequestDto, AttendanceWiFiEntity>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            
            CreateMap<AttendanceRemedyRulesEntity, AttendanceRemedyRulesDto>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<AttendanceRemedyRulesDto, AttendanceRemedyRulesEntity>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<AttendanceRemedyRulesRequestDto, AttendanceRemedyRulesEntity>().IgnoreAllPropertiesWithAnInaccessibleSetter();

            CreateMap<AttendanceFixedGroupRequestDto, AttendanceGroupEntity>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<AttendanceNoneGroupRequestDto, AttendanceGroupEntity>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<AttendanceTurnGroupRequestDto, AttendanceGroupEntity>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<AttendanceGroupEntity, AttendanceGroupDto>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<AttendanceGroupDto, AttendanceGroupEntity>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<AttendanceGroupFixedViewEntity, AttendanceGroupFixedViewDto>().IgnoreAllPropertiesWithAnInaccessibleSetter();

            CreateMap<AttendancePlanRequestDto, AttendancePlanEntity>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<AttendancePlanEntity, AttendancePlanDto>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<AttendancePlanViewEntity, AttendancePlanViewDto>().IgnoreAllPropertiesWithAnInaccessibleSetter();

            CreateMap<AttendanceCheckInRecordRequestDto, AttendanceCheckInRecordEntity>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<AttendanceCheckInRecordRequestDto, AttendanceCheckInRecordDto>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<AttendanceCheckInRecordEntity, AttendanceCheckInRecordDto>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<AttendanceCheckInRecordDto, AttendanceCheckInRecordEntity>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<AttendanceCheckInRecordDto, AttendanceCheckInRecordViewDto>().IgnoreAllPropertiesWithAnInaccessibleSetter();

            CreateMap<AttendanceRemedyApplyEntity, AttendanceRemedyApplyDto>().IgnoreAllPropertiesWithAnInaccessibleSetter();
        }
    }
}